package com.example.tsbs.binary;

import lombok.Data;

@Data
public class BaseBinaryStructure {

    /**
     * 格式声明 16字节 前面三个字节为空格字符
     */
    private String flags;

    /**
     * 数据块数量 nBulk 4字节
     */
    private int nBulk;

    /**
     * 数据块内容
     */
    private String data;

    public BaseBinaryStructure(int nBulk, String data) {
        String flags = "SIMPLEDATAV01";
        flags = String.format("%16s", flags);
        setFlags(flags);
        setBulk(nBulk);
        setData(data);
        System.out.println("格式声明：{"+flags+"}");
        System.out.println("数据块数量：{"+nBulk+"}");
        System.out.println("数据块内容：{"+data+"}");
    }

    // 合并字符串
    @Override
    public String toString() {
        return getFlags() + getBulk() + getData();
    }

    public static void main(String[] args) {
        BaseBinaryStructure bs = new BaseBinaryStructure(1, "0002");
        System.out.println(bs);
        System.out.println("**************************");
    }

    // 设置标志位
    public void setFlags(String flags) {
        this.flags = flags;
    }

    // 获取标志位
    public String getFlags() {
        return this.flags;
    }

    // 设置标志位
    public void setBulk(Integer nBulk) {
        this.nBulk = nBulk;
    }

    // 获取标志位
    public String getBulk() {
        return String.format("%4d", nBulk);
    }

    // 设置数据位
    public void setData(String data) {
        this.data = data;
    }

    // 获取数据位
    public String getData() {
        return this.data ;
    }


}
